http://live-feedback.net
@jni_viens
#ElapseAT14
jni-
1
2
3
4
5
6

Livraison continue

Une mise en production à chaque heure de la journée

Les fameuses mise en production...

Est-ce tout simplement "cowboy"?

Tenons-nous au courant!

http://live-feedback.net

Qui serait assez confiant pour faire une mise en production lors d'une présentation?

Pourquoi?

Qu'est-ce qu'on vient de réaliser?

On s'est donné les moyens de faire de la livraison continue!

Qu'est-ce que la livraison continue?

Je me sens moins novateur depuis mercredi passé...

Microsoft a fait la même démo que moi!

Le keynote de la conférence Connect();

Une mise en production, c'est un marathon

Avertissement

Je suis un peu fou!

Étape 1

Tout doit être dans le contrôle de source

La configuration

Des serveurs, des environnements de développement, etc.

La base de données

Ou les migrations nécessaires

Le code

Ça semble évident, mais absolument tout doit y être : cronjob, services, etc.

Tout ceci est incrémental!

Tout ceci est testable!

Étape 2

Configuration des environnements

Un environnement de développement toujours prêt

Les modifications directement sur le serveur

La pire gaffe à faire!

Docker

Étape 3

Les tests doivent pouvoir s'exécuter facilement

À éviter

Pour faire passer le test X tu as besoin d'installer Y... fait juste l'ignorer.

Du feedback rapide et continu

Qui provient du même environnement que la prod!

Étape 4

Publier un et un seul paquet pour les installations

Avec docker

Une nouvelle image pour chaque version!

Améliorer l'ensemble

Merge fréquents et résultat cohérent

Quand est-ce qu'une fonctionnalité est réellement "done"?

Étape 5

Un déploiement simple et rapide

Déployez tôt et souvent

Ne faites pas l'erreur de vous dire "c'est trop simple pour l'instant"

Évitez les erreurs humaines

Et réduisez votre "bus factor"

Déployer n'importe quelle version, sur n'importe quel environnement, à n'importe quel moment

Sans donner de crise de panique à personne!

Le "release train" de SAFe

Obtenez du feedback plus rapide et fréquent

Déployez de petits morceaux chaque fois

Prévoyez les problèmes: pratiquez les "rollback"

Étape 6

Déploiement sans interruption

En 5-10 secondes, on a

  • Mis à jour l'image Docker
  • Démarré l'application dans le nouveau conteneur, en parallèle de l'ancien
  • Fait des tests pour voir que tout est beau (health check)
  • Mis à jour la configuration du proxy
  • Envoyé un message au site pour aviser de la mise à jour (broadcast)
  • Mis en attente toutes les connexions au serveur
  • Rechargé la configuration du proxy
  • Réouvert les connexions

Ce n'est pas seulement pour les mises en production

Augmente souvent la résilience du produit

Les fameuses mise en production...

Est-ce tout simplement "cowboy"?

Interessés?

Commencez tranquillement à tout automatiser, ne prennez pas de trop grosses bouchées!

Restez Lean

Est-ce nécessaire d'avoir aucune interruption?

Votre client vous en remerciera

Arrêtons d'être le goulot d'étranglement

Il reste également la question de la base de données...

Malheureusement, on devra se reprendre!